package yl.hs.bmipfull.pojo.salemanage;

import org.springframework.lang.Nullable;
import yl.hs.bmipfull.annotations.DBField;
import yl.hs.bmipfull.annotations.DBTable;
import yl.hs.bmipfull.pojo.BaseEntity;
import yl.hs.bmipfull.utils.DataState;
import yl.hs.bmipfull.utils.HanYuHelper;

/**
 * 作用:  客户工地信息实体类<br/>
 * 创建时间: 2021年05月19日 14时41分05秒 <br/>
 *
 * @author 谢东 <br/>
 * 最后修改人: 张凯 <br/>
 * 最后修改时间: 2021年06月11日 10点11分19秒 <br/>
 */
@DBTable(disName = "客户工地信息", mapCode = "build_project_info")
public class BuildProjectInfoEntity extends BaseEntity {

    /**
     * 主键
     */
    @Nullable
    private Long id;
    /**
     * 客户名称
     */
    @DBField(disName = "客户名称")
    private String customerName;
    /**
     * 联系人姓名
     */
    @DBField(disName = "联系人姓名")
    private String linkerName;
    /**
     * 项目阶段
     */
    @DBField(disName = "项目阶段")
    private Short projectPhase=0;
    /**
     * 联系人类别
     */
    @DBField(disName = "联系人类别")
    private Short linkerCategory=0;

    public void setProjectPhase(Short projectPhase) {
        this.projectPhase = projectPhase;
    }

    public void setLinkerCategory(Short linkerCategory) {
        this.linkerCategory = linkerCategory;
    }

    /**
     * 编号
     */
    @DBField(disName = "客户工地信息编号", mapCode = "sn", isSerialNumber = true, isRequire = true, snPrefix = "JZGD")
    private String sn;
    /**
     * 工地名称
     */
    @DBField(disName = "工地名称",mapCode ="projectName" )
    private String projectName;
    /**
     * 工地名称拼音
     */

    private String projectNamePY;
    /**
     * 所在区域
     */
    @DBField(disName = "所在区域")
    private String area;
    /**
     * 所在区域拼音
     */
    private String areaPY;
    /**
     * 所在区域代码
     */
    private String areaCode;
    /**
     * 详细地址
     */
    @DBField(disName = "详细地址")
    private String address;
    /**
     * 详细地址拼音
     */
    private String addressPY;
    /**
     * 定位
     */
    private String pointInfo;
    /**
     * 业主单位
     */
    @DBField(disName = "业主单位")
    private String ownerName;
    /**
     * 业主单位拼音
     */
    private String ownerNamePY;
    /**
     * 施工单位
     */
    @DBField(disName = "施工单位")
    private String buildName;
    /**
     * 施工单位拼音
     */
    private String buildNamePY;
    /**
     * 监理单位
     */
    @DBField(disName = "监理单位")
    private String supervision;
    /**
     * 监理单位拼音
     */
    private String supervisionPY;
    /**
     * 运距
     */
    @DBField(disName = "运距")
    private float distance;
    /**
     * 状态
     */
    @DBField(disName = "状态")
    private Short state;
    /**
     * 客户编号
     */
    private String customerSN;
    /**
     * 组织编号
     */
    private String organizationSN;
    /**
     * 组织代码
     */
    private String organizationCode;



    /**
     * 联系人编号
     */
    private String linkerSN;



    /**
     * 施工单位
     */
    private String constructionUnit;
    /**
     * 建设单位
     */
    private String buildUnit;
    /**
     *  监理单位
     */
    private String supervisorUnit;



    public String getConstructionUnit() {
        return constructionUnit;
    }

    public void setConstructionUnit(String constructionUnit) {
        this.constructionUnit = constructionUnit;
    }

    public String getBuildUnit() {
        return buildUnit;
    }

    public void setBuildUnit(String buildUnit) {
        this.buildUnit = buildUnit;
    }

    public String getSupervisorUnit() {
        return supervisorUnit;
    }

    public void setSupervisorUnit(String supervisorUnit) {
        this.supervisorUnit = supervisorUnit;
    }

    public short getProjectPhase() {
        return projectPhase;
    }

    public void setProjectPhase(short projectPhase) {
        this.projectPhase = projectPhase;
    }

    public short getLinkerCategory() {
        return linkerCategory;
    }

    public void setLinkerCategory(short linkerCategory) {
        this.linkerCategory = linkerCategory;
    }

    public BuildProjectInfoEntity() {
        this.distance = this.state = DataState.CREATED.code;
    }

    public BuildProjectInfoEntity(String name, String address, String customerSN, String customerName) {
        this.projectName = name;
        this.projectNamePY = HanYuHelper.getShortSpec(name);
        this.address = address;
        this.addressPY = HanYuHelper.getShortSpec(address);
        this.customerName = customerName;
        this.customerSN = customerSN;
        this.area = this.areaCode = this.areaPY = this.supervision = this.buildName = this.buildNamePY =
                this.supervisionPY = "";
        this.distance = this.state = DataState.CREATED.code;
    }

    public String getLinkerSN() {
        return linkerSN;
    }

    public void setLinkerSN(String linkerSN) {
        this.linkerSN = linkerSN;
    }

    public String getLinkerName() {
        return linkerName;
    }

    public void setLinkerName(String linkerName) {
        this.linkerName = linkerName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSn() {
        return this.sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getProjectName() {
        return this.projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

    public String getProjectNamePY() {
        return this.projectNamePY;
    }

    public void setProjectNamePY(String projectNamePY) {
        this.projectNamePY = projectNamePY;
    }

    public String getArea() {
        return this.area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getAreaPY() {
        return this.areaPY;
    }

    public void setAreaPY(String areaPY) {
        this.areaPY = areaPY;
    }

    public String getAreaCode() {
        return this.areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getAddress() {
        return this.address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddressPY() {
        return this.addressPY;
    }

    public void setAddressPY(String addressPY) {
        this.addressPY = addressPY;
    }

    public String getPointInfo() {
        return this.pointInfo;
    }

    public void setPointInfo(String pointInfo) {
        this.pointInfo = pointInfo;
    }

    public String getOwnerName() {
        return this.ownerName;
    }

    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }

    public String getOwnerNamePY() {
        return this.ownerNamePY;
    }

    public void setOwnerNamePY(String ownerNamePY) {
        this.ownerNamePY = ownerNamePY;
    }

    public String getBuildName() {
        return this.buildName;
    }

    public void setBuildName(String buildName) {
        this.buildName = buildName;
    }

    public String getBuildNamePY() {
        return this.buildNamePY;
    }

    public void setBuildNamePY(String buildNamePY) {
        this.buildNamePY = buildNamePY;
    }

    public String getSupervision() {
        return this.supervision;
    }

    public void setSupervision(String supervision) {
        this.supervision = supervision;
    }

    public String getSupervisionPY() {
        return this.supervisionPY;
    }

    public void setSupervisionPY(String supervisionPY) {
        this.supervisionPY = supervisionPY;
    }

    public float getDistance() {
        return this.distance;
    }

    public void setDistance(float distance) {
        this.distance = distance;
    }

    public Short getState() {
        return this.state;
    }

    public void setState(Short state) {
        this.state = state;
    }

    public String getCustomerSN() {
        return this.customerSN;
    }

    public void setCustomerSN(String customerSN) {
        this.customerSN = customerSN;
    }

    public String getOrganizationSN() {
        return this.organizationSN;
    }

    public void setOrganizationSN(String organizationSN) {
        this.organizationSN = organizationSN;
    }

    public String getOrganizationCode() {
        return this.organizationCode;
    }

    public void setOrganizationCode(String organizationCode) {
        this.organizationCode = organizationCode;
    }
}